package exception;

/**
 * java异常处理机制
 * java将异常进行分类：
 * java.lang.Throwable是所有异常类的顶级超类
 * 下面派生了两个子类型“
 * Error：这类错误表示系统级别错误，是不可恢复的错误，程序出现后就会停止
 *       java异常处理机制不处理Error
 * Exception：程序级别的”意外，例外“，是可以通过异常处理机制恢复的错误
 * java异常处理机制：
 * try{
 *    代码片段
 *     }catch（  ）{
 *     处理异常机制的补救措施
 * }
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了...");
        try {
            //String line = null;
            String line = "abc";
            System.out.println(line.length());
            System.out.println(line.charAt(0));
            System.out.println(Integer.parseInt(line));
//        }catch (NullPointerException e){
            //解决办法
//            System.out.println("出现了空指针并且解决了");
//        }catch (StringIndexOutOfBoundsException e){
//            System.out.println("出现下标越界并且解决了");
//        }
          //多个异常同时出现  可以合并catch  |----连接异常
        } catch (NullPointerException | StringIndexOutOfBoundsException e) {
            System.out.println("出现空指针或下标越界并且解决了");

         //错误的超类   Exception  可以处理所有的错误
        }catch (Exception e){
            System.out.println("未知错误");
        }
        System.out.println("程序结束!");
    }
}